¿Cuál es la diferencia entre SQLServer y Oracle?
La diferencia entre ORACLE y SQL SERVER
Arquitectura
La arquitectura de archivos de ORACLE es:
Archivo de datos.DBF (datos reales)
Archivo de registro.RDO
Archivo de control.CTL
Archivo de parámetros.ORA
La estructura del sistema de archivos de SQL SERVER es: < / p>
.MDF (diccionario de datos)
.NDF (archivo de datos)
.LDF (archivo de registro)
Estructura de almacenamiento ORACLE:
Hay dos parámetros de bloque PCTFREE (factor de relleno) y PCTUSED (factor de reutilización) en ORACLE, que pueden controlar el bloque para determinar cuándo el bloque en sí tiene y cuándo no hay suficiente espacio para aceptar nueva información (para el bloquear el mecanismo de análisis de almacenamiento)
Esto puede reducir la posibilidad de conexión y migración de filas de datos. Se puede configurar el tamaño del bloque (bloque OLTP y bloque DSS)
En ORACLE, los bloques continuos se componen de áreas y el área se puede asignar dinámicamente (la asignación del área puede ser igual o independiente). -aumentando). Reducir el número de asignaciones de espacio
En ORACLEl, una tabla se puede dividir en múltiples segmentos. Un segmento se compone de múltiples áreas. Cada segmento puede especificar en qué espacio de tabla se asigna (segmento). Los tipos se dividen en: segmento de datos, segmento de índice, segmento de reversión, segmento temporal y segmento de CASH. Las tablas también se pueden dividir en ORACLE y los datos en el disco se pueden separar físicamente de acuerdo con las reglas, condiciones o reglas comerciales definidas por el usuario.
De esta manera se reduce en gran medida la posibilidad de contención de disco.
ORACLE tiene siete espacios de tabla básicos:
Espacio de tabla SYSTEM (almacenamiento de diccionario de datos e información requerida). para la gestión de datos en sí)
p>Espacio de tabla de reversión RBS
Espacio de tabla temporal TEMP
Espacio de tabla interactivo TOOLS
USERS usuario predeterminado espacio de tabla
Espacio de tabla de índice INDX
Espacio de tabla de datos DBSYS
Se colocan diferentes datos en diferentes espacios de tabla (el diccionario de datos y los datos reales se almacenan por separado). En ORACLE, la tabla base (información de parámetros del sistema de almacenamiento) es un almacenamiento cifrado y nadie puede acceder a ella
Estructura de almacenamiento de SQL SERVER
La unidad de asignación mínima son páginas. 8K (incontrolable, falta de mecanismo de análisis para el almacenamiento de páginas),
8 páginas consecutivas se pueden componer en una 'expansión' para reducir aún más el tiempo dedicado a la asignación de recursos. Los datos se almacenan en tablas en SQL SERVER y las tablas se almacenan en bases de datos.
SQL SERVER tiene cinco bases de datos básicas:
modo maestro (diccionario de datos)
. (plantilla de almacenamiento)
tempdb (base de datos temporal)
msdb (información de programación de almacenamiento e información de registro)
pubs (base de datos de muestra)
Los datos reales y el diccionario de datos se almacenan juntos. No existe ningún mecanismo de seguridad para la información de los parámetros del sistema.
Administración de inicio de sesión de ORACLE:
SISTEMA/MANAGER (cuenta inicial)
<. p>SYS/CHANGE_ON_NSTALLINSTALL/ORACLE (cuenta de instalación)
SCOTT/TIGER (base de datos de muestra, para pruebas)
p>En ORACLE, hay De forma predeterminada, solo hay tres usuarios del sistema y ORACLE inicia sesión a través de usuarios.
Gestión de inicio de sesión de SQL SERVER:
Autenticación de SQL SERVER
Autenticación de WINDOWS
En SQL SERVER es a través de la cuenta de usuario de WINDOWS o La base de datos está conectada mediante autenticación de SQL SERVER.
SQL no es un lenguaje, sino una forma de transmitir instrucciones a la base de datos ORACLE.
NULL en SQL no es un carácter ni un número, son los datos predeterminados. ORACLE proporciona la función NVL para resolver este problema.
La conexión de cadena en ORACLE es cadena1‖cadena2, y en SQL es cadena1 cadena2.
Operación de configuración: en SQL solo existe UNION (operación de unión), ORACLE contiene MINUS ( diferencia) operación),
INTERECT (operación de intersección), UNION (y operación).
Índice: los índices SQL se dividen en índices agrupados e índices no agrupados, y también incluyen índices de texto completo.
Los índices ORACLE incluyen: índice de árbol B, índice de mapa de bits; índice de función, índice inverso,
índice de clave principal, índice hash, índice local.
Los tipos de datos de ORACLE son relativamente complejos, incluidos tipos de datos básicos, tipos derivados, tipos de objetos de columna, tipos de objetos de tabla y tipos de estructura. Los datos en SQL son relativamente simples, y solo algunos tipos de datos básicos simples no pueden; proporcionar transacciones operar.
En SQL, si se produce un error desde el principio hasta el final de una transacción, se revertirá antes del principio.
En ORACLE, se utiliza la reversión de punto fijo; Es decir, la transacción se funcionaliza y el error se localiza con precisión. Savepoint se usa para marcar el punto de guardado y Rollback se usa para marcar el punto de guardado para errores de reversión.
Solo hay un tipo de bucle en SQL, WHILE, que no es flexible de usar. Hay muchos tipos de bucles en ORACLE (bucle LOOP, bucle WHILE, bucle FOR).
El uso de cursores en SQL es más complicado. No puedes abrir más de un cursor al mismo tiempo porque solo tiene una variable global @@Fast_statues y es problemático declarar el cursor. no se borra al cerrar el cursor en ORACLE El cursor es un cursor de un solo elemento que está unificado para mejorar la velocidad, lo que permite que varios usuarios lean de forma asincrónica, y la declaración es relativamente simple, simplemente declare el nombre del cursor como instrucción de selección.
Mecanismo de tolerancia a fallos: el mecanismo de error en SQL es relativamente complejo y no se proporciona ninguna descripción del error. Hay tres tipos de tolerancia a fallos en ORACLE, uno es un error predefinido, otro es un error no predefinido y el otro es un error no predefinido. otro está definido por el usuario, entre los cuales hay dos errores personalizados que no están disponibles en SQL, a saber, el número de error SQLCODE y la descripción del error SQLERRM.
Arquitectura de archivos: Hay .MDF (archivo de datos principal), .NDF (archivo de extensión, puede haber varios),
.LDF (archivo de registro, puede haber varios) en SQL, almacenados en datos de registro de rehacer en línea Una desventaja de los archivos de registro aquí es que si el archivo de registro se completa en tamaño pequeño y exquisito, SQL dejará de ejecutarse automáticamente y esperará la intervención manual, por lo que la situación del registro debe monitorearse con frecuencia. asegurar el funcionamiento estable del sistema). Hay .DBF (archivos de datos principales), .RDO (archivos de registro, utilizados para copias de seguridad de datos catastróficos) y .CTL (archivos de control) en ORACLE, que asignan los archivos físicos de la base de datos a los espacios de tabla lógica y las conexiones en el diccionario de datos. Cargue archivos de registro de rehacer para garantizar la coherencia de los datos), .ORA (archivo de parámetros).
. SQL solo puede realizar una copia de seguridad de la base de datos local localmente y no se puede realizar una copia de seguridad en línea, y la compresión de la copia de seguridad es muy baja y ocupa mucho espacio; ORACLE proporciona 7 mecanismos de copia de seguridad, con función de copia de seguridad en línea. Máquina de respaldo de Youzhimen.
Oracle tiene tres registros de forma predeterminada. El registro n.° 1 se escribe primero y luego el registro n.° 2 cuando está lleno. Cuando el registro n.° 2 está lleno, se escribe el registro n.° 3. Cuando el registro número 3 esté lleno, Oracle realizará una copia de seguridad automática del contenido del registro número 1, luego lo borrará y escribirá nueva información de registro. Y los registros de Oracle tienen funciones de multiplexación. Podemos crear múltiples espejos para los registros y escribir el mismo registro. información a varios registros al mismo tiempo, esto evita la pérdida de datos causada por daños en el disco.
SQL Server solo puede asignar un archivo de registro a cada base de datos. Y cuando el registro esté lleno, dejará de funcionar, esperará la intervención manual y no podrá reutilizarse automáticamente.
El archivo de control de Oracle registra la ubicación física y la validez del archivo de la base de datos. Cada vez que se abre el sistema Oracle, los datos se verificarán automáticamente para verificar su validez y evitar la pérdida de datos. gestión de datos.
SQL Server no tiene este mecanismo de seguridad. El sistema solo verifica si los datos existen después de usar la información de la base de datos.
El archivo de parámetros de Oracle init.ora es ajustable, lo que significa que podemos ajustar el uso de los recursos del sistema por parte de Oracle de acuerdo con el tamaño de la base de datos para lograr la asignación de recursos más razonable y permitir que Oracle logre el mejor rendimiento.
Los parámetros de configuración de SQL Server son predeterminados y no se pueden ajustar. Su asignación de recursos del sistema es fija y no está sujeta al control del usuario. Por lo tanto, no puede manejar las necesidades de una gran cantidad de usuarios al mismo tiempo. tiempo, lo que lo limita a ser un servidor de tamaño mediano, base de datos pequeña.
Oracle utiliza bloques como unidad mínima de almacenamiento y asigna espacio en distritos. Los usuarios pueden definir el tamaño del bloque según sea necesario, y los distritos se pueden asignar en cantidades iguales o en incrementos, lo que puede reducir en gran medida la E/S. del sistema. Las operaciones O mejoran el rendimiento de la base de datos.
En SQL Server, el espacio se asigna en unidades de páginas o en unidades de 8 páginas usando tipos extendidos sin intervención manual. Cuando se encuentra almacenamiento frecuente o grandes cantidades de almacenamiento de datos, el sistema realizará E/S con frecuencia. operaciones O la operación hace que el trabajo sea ineficiente.
Las sentencias SQL en Oracle están estandarizadas y proporcionan funciones y tipos de datos completos. Oracle proporciona un mecanismo de error sólido y los usuarios pueden obtener fácilmente la ubicación y la causa del error y realizar correcciones. Los usuarios también pueden definir los tipos de error requeridos para verificar errores lógicos. La conversión de tipos de datos y la definición del cursor también son muy convenientes en Oracle. Por lo tanto, nos resulta mucho más fácil escribir y mantener código que SQL Server.
SQL Server utiliza un lenguaje similar a C, que es difícil de mantener y ver el código. SQL Server contiene muy pocos tipos de datos para definir estructuras, matrices y objetos. SQL Server no puede definir un mecanismo de proceso y la conversión de tipos es extremadamente inconveniente. La definición de cursores en SQL Server es muy complicada y cuando se abren varios cursores definidos por el usuario al mismo tiempo, el sistema solo tiene una variable de cursor. un defecto grave en SQL Server.
En ORACLE, los usuarios pueden definir el factor de llenado (el porcentaje de espacio libre) y el factor de reutilización (cuando el espacio ocupado por los datos almacenados del bloque cae por debajo de este porcentaje al crear un bloque basado en las necesidades de datos, el bloque antes de volver a marcarse como disponible). Los usuarios pueden establecer factores de llenado y factores inactivos apropiados según la frecuencia de los cambios de registros y la cantidad de datos.
SQL SERVER sólo tiene factor de relleno, y su definición es justo lo contrario de ORACLE. Define el porcentaje de espacio libre restante. No hay factor de reutilización en SQL SERVER Cuando los datos en la página son inferiores al factor de relleno, pero el espacio restante ya no es posible para insertar nuevos datos, la página todavía está marcada como disponible cuando el sistema quiere escribir nuevos. datos, debe acceder a este Este tipo de página se llama página de desperdicio, lo que hará que el sistema pierda mucho tiempo buscando páginas disponibles al insertar nuevos datos.
Al crear una tabla en ORACLE, los usuarios pueden definir con precisión el espacio de tabla donde se almacenan los datos, e incluso pueden almacenar una tabla en múltiples espacios de tabla, de modo que las tablas con grandes cantidades de datos se puedan separar por ciertos campos, lo que aportará una eficiencia extremadamente alta a las consultas.